package com.example.langchain4j.config;

import dev.langchain4j.memory.chat.ChatMemoryProvider;
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import dev.langchain4j.model.embedding.EmbeddingModel;
import dev.langchain4j.store.memory.chat.ChatMemoryStore;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Created by hsl on 2025/4/25.
 */
@Configuration
public class XiaofangAgentConfig {



    @Resource
    private EmbeddingModel embeddingModel;

    //@Resource
    //private EmbeddingStore<TextSegment> embeddingStore;

    @Bean
    public ChatMemoryProvider chatMemoryProvider(ChatMemoryStore chatMemoryStore) {
        return memoryId -> MessageWindowChatMemory.builder()
                .id(memoryId)
                .maxMessages(20)
                .chatMemoryStore(chatMemoryStore)
                .build();
    }


//    @Bean
//    public ContentRetriever contentRetrieverMilvus() {
//        // 创建一个 EmbeddingStoreContentRetriever 对象，用于从嵌入存储中检索内容return
//        return EmbeddingStoreContentRetriever.builder()
//                // 设置用于生成嵌入向量的嵌入模型
//                .embeddingModel(embeddingModel)
//                // 指定要使用的嵌入存储
//                .embeddingStore(embeddingStore)
//                // 设置最大检索结果数量，这里表示最多返回 1 条匹配结果
//                .maxResults(1)
//                // 设置最小得分阈值，只有得分大于等于 0.8 的结果才会被返回
//                .minScore(0.8)
//                // 构建最终的 EmbeddingStoreContentRetriever 实例
//                .build();
//    }

//    @Bean
//    public ChatLanguageModel chatLanguageModel() {
//        return QwenChatModel.builder()
//                .apiKey("YOUR_API_KEY")
//                .baseUrl("")
//                .modelName("")
//
//                .build();
////                .temperature()
//    }
}
